package pers.bc.utils.net;

import java.util.HashMap;
import java.util.Map;

import pers.bc.utils.pub.CollectionUtil;
import pers.bc.utils.pub.JudgeAssertUtil;
import pers.bc.utils.pub.StringUtil;

public class ResultEntity
{
    private Map<String, Object> map = new HashMap<String, Object>();
    
    public static ResultEntity success()
    {
        // 相当于调用下面的map 然后把值存map里面 。
        ResultEntity entity = new ResultEntity();
        entity.getMap().put("statusCode", 200);
        entity.getMap().put("message", "操作成功!!!");
        entity.getMap().put("thwMsg", "操作成功!!!");
        entity.getMap().put("code", 200);
        entity.getMap().put("status", 200);
        entity.getMap().put("msg", "接口响应成功");
        
        return entity;
    }
    
    public static ResultEntity failed(String message)
    { 
        message = JudgeAssertUtil.processMessage(message).replace("nc.vo.pub.BusinessException:", "");
        // message = JudgeAssertUtil.processMsg(message);
        
        // 相当于调用下面的map 然后把值存map里面 。
        ResultEntity entity = new ResultEntity();
        entity.getMap().put("statusCode", 200);
        entity.getMap().put("message", message);
        entity.getMap().put("code", 200);
        entity.getMap().put("status", 201);
        entity.getMap().put("msg", "接口响应成功");
        entity.getMap().put("thwMsg", message);
        
        return entity;
    }
    
    // 用来存值，对象，集合
    public ResultEntity put(String key, Object value)
    {
        this.getMap().put(key, value);
        return this;
    }
    
    public Map<String, Object> getMap()
    {
        return map;
    }
    
    public void setMap(Map<String, Object> map)
    {
        this.map = map;
    }
    
    @Override
    public String toString()
    {
        try
        {
            // String mapStr = StringUtil.toString(this.getMap()).replace(":", "");
            // JSONObject js = (JSONObject) JSONObject.parse(JsonUtil.compressJson(mapStr));
            // return "nc.bs.vo.ResultEntity = " + CollectionUtil.transObj2Josn(this.getMap()).replace("\r\n",
            // "");
            // return JSON.toJSONString(this.getMap());
            return CollectionUtil.transObj2Josn(this.getMap())
                    .replace("\r\n", "").replace("\n", "")
                    .replace("\"[", "[").replace("]\"", "]");
        }
        catch (Throwable e)
        {
            System.err.println(e.getMessage());
            return StringUtil.toString(this.getMap());
        }
        // return super.toString();
    }
}
